{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Processing Images\n", "\n", "## Laura's Foot\n", "\n", "In the following examples, you can click on the canvas to advance the sequence.\n", "\n", "Other ideas:\n", "\n", "* http://cs.brynmawr.edu/~dblank/bubo/brain/ - Laura's Brain" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "\n", " var component = document.getElementById(\"sketch_1\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"state_1\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"controls_div_1\");\n", " if (component != undefined)\n", " component.remove();\n", " require([window.location.protocol + \"//calysto.github.io/javascripts/processing/processing.js\"], function() {\n", " // FIXME: Stop all previously running versions (?)\n", " var processingInstance = Processing.getInstanceById(\"canvas_1\");\n", " if (processingInstance != undefined && processingInstance.isRunning())\n", " processingInstance.noLoop();\n", " });\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", " Sketch #1:
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", "
\n", "Sketch #1 state: Loading...
\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "/* @pjs preload=\"images/00000000.jpg,images/00000001.jpg,images/00000002.jpg,images/00000003.jpg,images/00000004.jpg,images/00000005.jpg,images/00000006.jpg,images/00000007.jpg,images/00000008.jpg,images/00000009.jpg,images/00000010.jpg,images/00000011.jpg,images/00000012.jpg,images/00000013.jpg,images/00000014.jpg,images/00000015.jpg,images/00000016.jpg,images/00000017.jpg,images/00000018.jpg,images/00000019.jpg,images/00000020.jpg,images/00000021.jpg,images/00000022.jpg,images/00000023.jpg,images/00000024.jpg,images/00000025.jpg,images/00000026.jpg,images/00000027.jpg,images/00000028.jpg,images/00000029.jpg,images/00000030.jpg,images/00000031.jpg,images/00000032.jpg,images/00000033.jpg,images/00000034.jpg,images/00000035.jpg,images/00000036.jpg,images/00000037.jpg\"; */\n", "\n", "PImage[] imgs = new PImage[38];\n", "int current = 0;\n", "\n", "void setup() {\n", " for (int i=0; i < imgs.length; i++) {\n", " imgs[i] = loadImage(\"images/\" + nf(i, 8) + \".jpg\");\n", " }\n", " size(imgs[0].width, imgs[0].height);\n", "}\n", "\n", "void draw() {\n", "}\n", "\n", "void mouseClicked() {\n", " current++;\n", " if (current == imgs.length) {\n", " current = 0;\n", " }\n", " image(imgs[current], 0, 0);\n", "}" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "\n", " var component = document.getElementById(\"sketch_2\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"state_2\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"controls_div_2\");\n", " if (component != undefined)\n", " component.remove();\n", " require([window.location.protocol + \"//calysto.github.io/javascripts/processing/processing.js\"], function() {\n", " // FIXME: Stop all previously running versions (?)\n", " var processingInstance = Processing.getInstanceById(\"canvas_2\");\n", " if (processingInstance != undefined && processingInstance.isRunning())\n", " processingInstance.noLoop();\n", " });\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", " Sketch #2:
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", "
\n", "Sketch #2 state: Loading...
\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "/* @pjs preload=\"images/00000000.jpg,images/00000001.jpg,images/00000002.jpg,images/00000003.jpg,images/00000004.jpg,images/00000005.jpg,images/00000006.jpg,images/00000007.jpg,images/00000008.jpg,images/00000009.jpg,images/00000010.jpg,images/00000011.jpg,images/00000012.jpg,images/00000013.jpg,images/00000014.jpg,images/00000015.jpg,images/00000016.jpg,images/00000017.jpg,images/00000018.jpg,images/00000019.jpg,images/00000020.jpg,images/00000021.jpg,images/00000022.jpg,images/00000023.jpg,images/00000024.jpg,images/00000025.jpg,images/00000026.jpg,images/00000027.jpg,images/00000028.jpg,images/00000029.jpg,images/00000030.jpg,images/00000031.jpg,images/00000032.jpg,images/00000033.jpg,images/00000034.jpg,images/00000035.jpg,images/00000036.jpg,images/00000037.jpg\"; */\n", "\n", "PImage[] imgs = new PImage[38];\n", "int current = 0;\n", "\n", "void setup() {\n", " for (int i=0; i < imgs.length; i++) {\n", " imgs[i] = loadImage(\"images/\" + nf(i, 8) + \".jpg\");\n", " }\n", " size(imgs[0].width, imgs[0].height);\n", "}\n", "\n", "void draw() {\n", " image(imgs[current], 0, 0);\n", "}\n", "\n", "void mouseClicked() {\n", " imgs[current].loadPixels();\n", " //println(\"gray: \" + red(imgs[current].pixels[int(mouseX + mouseY * imgs[current].width)]));\n", " current++;\n", " if (current == imgs.length) {\n", " current = 0;\n", " } \n", "}\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "\n", " var component = document.getElementById(\"sketch_3\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"state_3\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"controls_div_3\");\n", " if (component != undefined)\n", " component.remove();\n", " require([window.location.protocol + \"//calysto.github.io/javascripts/processing/processing.js\"], function() {\n", " // FIXME: Stop all previously running versions (?)\n", " var processingInstance = Processing.getInstanceById(\"canvas_3\");\n", " if (processingInstance != undefined && processingInstance.isRunning())\n", " processingInstance.noLoop();\n", " });\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", " Sketch #3:
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", "
\n", "Sketch #3 state: Loading...
\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "/* @pjs preload=\"images/00000000.jpg,images/00000001.jpg,images/00000002.jpg,images/00000003.jpg,images/00000004.jpg,images/00000005.jpg,images/00000006.jpg,images/00000007.jpg,images/00000008.jpg,images/00000009.jpg,images/00000010.jpg,images/00000011.jpg,images/00000012.jpg,images/00000013.jpg,images/00000014.jpg,images/00000015.jpg,images/00000016.jpg,images/00000017.jpg,images/00000018.jpg,images/00000019.jpg,images/00000020.jpg,images/00000021.jpg,images/00000022.jpg,images/00000023.jpg,images/00000024.jpg,images/00000025.jpg,images/00000026.jpg,images/00000027.jpg,images/00000028.jpg,images/00000029.jpg,images/00000030.jpg,images/00000031.jpg,images/00000032.jpg,images/00000033.jpg,images/00000034.jpg,images/00000035.jpg,images/00000036.jpg,images/00000037.jpg\"; */\n", "\n", "PImage[] imgs = new PImage[38];\n", "int current = 0;\n", "\n", "void setup() {\n", " for (int i=0; i < imgs.length; i++) {\n", " imgs[i] = loadImage(\"images/\" + nf(i, 8) + \".jpg\");\n", " }\n", " size(imgs[0].width, imgs[0].height);\n", "}\n", "\n", "void draw() {\n", " image(imgs[current], 0, 0);\n", " current++;\n", " if (current == imgs.length) {\n", " current = 0;\n", " }\n", "}\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "application/javascript": [ "\n", " var component = document.getElementById(\"sketch_4\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"state_4\");\n", " if (component != undefined)\n", " component.remove();\n", " component = document.getElementById(\"controls_div_4\");\n", " if (component != undefined)\n", " component.remove();\n", " require([window.location.protocol + \"//calysto.github.io/javascripts/processing/processing.js\"], function() {\n", " // FIXME: Stop all previously running versions (?)\n", " var processingInstance = Processing.getInstanceById(\"canvas_4\");\n", " if (processingInstance != undefined && processingInstance.isRunning())\n", " processingInstance.noLoop();\n", " });\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", " Sketch #4:
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", "
\n", "Sketch #4 state: Loading...
\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "/* @pjs preload=\"images/00000000.jpg,images/00000001.jpg,images/00000002.jpg,images/00000003.jpg,images/00000004.jpg,images/00000005.jpg,images/00000006.jpg,images/00000007.jpg,images/00000008.jpg,images/00000009.jpg,images/00000010.jpg,images/00000011.jpg,images/00000012.jpg,images/00000013.jpg,images/00000014.jpg,images/00000015.jpg,images/00000016.jpg,images/00000017.jpg,images/00000018.jpg,images/00000019.jpg,images/00000020.jpg,images/00000021.jpg,images/00000022.jpg,images/00000023.jpg,images/00000024.jpg,images/00000025.jpg,images/00000026.jpg,images/00000027.jpg,images/00000028.jpg,images/00000029.jpg,images/00000030.jpg,images/00000031.jpg,images/00000032.jpg,images/00000033.jpg,images/00000034.jpg,images/00000035.jpg,images/00000036.jpg,images/00000037.jpg\"; */\n", "\n", "PImage[] imgs = new PImage[38];\n", "PImage result;\n", "int current = 0;\n", "\n", "void setup() {\n", " for (int i=0; i < imgs.length; i++) {\n", " imgs[i] = loadImage(\"images/\" + nf(i, 8) + \".jpg\");\n", " imgs[i].loadPixels();\n", " }\n", " size(imgs[0].width, imgs[0].height);\n", " result = new PImage(imgs[0].width, imgs[0].height);\n", "}\n", "\n", "void draw() {\n", "}\n", "\n", "void mouseClicked() {\n", " current++;\n", " if (current == imgs.length) {\n", " current = 0;\n", " result = new PImage(imgs[0].width, imgs[0].height);\n", " } \n", " result.loadPixels();\n", " for (int i=0; i < current; i++) {\n", " // First find average of white pixels:\n", " int sum = 0;\n", " int count = 0;\n", " for (int x=0; x < imgs[i].width; x++) {\n", " for (int y=0; y < imgs[i].height; y++) {\n", " float c = red(imgs[i].pixels[int(x + y * imgs[i].width)]);\n", " if (c > 10) {\n", " sum += c;\n", " count += 1;\n", " }\n", " }\n", " }\n", " float average = sum/float(count);\n", " //println(\"Average \" + i + \": \" + average);\n", " for (int x=0; x < imgs[i].width; x++) {\n", " for (int y=0; y < imgs[i].height; y++) {\n", " float c = red(imgs[i].pixels[int(x + y * imgs[i].width)]);\n", " if (c > average + 70) {\n", " result.pixels[int(x + y * imgs[i].width)] = \n", " color(c, i * 256/37.0, 0); \n", " }\n", " }\n", " }\n", " }\n", " result.updatePixels();\n", " image(result, 0, 0);\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Calysto Processing", "language": "java", "name": "calysto_processing" }, "language_info": { "codemirror_mode": { "name": "text/x-java", "version": 2 }, "file_extension": ".java", "mimetype": "text/x-java", "name": "java" } }, "nbformat": 4, "nbformat_minor": 0 }